//package com.core.utils;
//
//import java.lang.reflect.Method;
//import java.util.concurrent.ExecutorService;
//import java.util.concurrent.Executors;
//
//import org.apache.log4j.Logger;
//
//public final class DBUtil {
//	private DBUtil() {
//
//	}
//
//	private static ExecutorService executor = Executors
//			.newSingleThreadExecutor(new NameThreadFactory("DBUtil"));
//
//	private static final Logger logger = Logger.getLogger(DBUtil.class);
//
//	public static void flushNow(Object dao, String methodName,
//			Object... objects) {
//		new Processor(dao, methodName, objects).run();
//	}
//
//	public static void flush(Object dao, String methodName, Object... objects) {
//		executor.submit(new Processor(dao, methodName, objects));
//	}
//
//	private static class Processor implements Runnable {
//
//		private final Object dao;
//		private final String methodName;
//		private Object[] objects;
//
//		Processor(Object dao, String methodName, Object... objects) {
//			this.dao = dao;
//			this.methodName = methodName;
//			this.objects = objects;
//		}
//
//		@SuppressWarnings("unchecked")
//		public void run() {
//			try {
//				Class util = dao.getClass();
//				Class[] classs = new Class[objects.length];
//				for (int i = 0; i < objects.length; i++) {
//					classs[i] = objects[i].getClass();
//				}
//				Method method = util.getDeclaredMethod(methodName, classs);
//				method.invoke(dao, objects);
//			} catch (Exception e) {
//				if (logger.isTraceEnabled())
//					logger.debug("DB Exception : ", e);
//			}
//		}
//	}
//}
